2151. Maximum Good People Based on Statements - LeetCode Solution


Array Bit Masking

Python Code:

class Solution:
    def maximumGood(self, statements: List[List[int]]) -> int:
        n=len(statements)
        ans=0
        def check(mask):
            for i in range(n):
                if mask & (1<<i)!=0: good.add(i)
            for i in range(n):
                if i in good:
                    for j in range(n):
                        if statements[i][j]==0 and j in good: return False
                        if statements[i][j]==1 and j not in good: return False
            return True
        for i in range(1,1<<n):
            good=set()
            if check(i):
                ans=max(ans,len(good))
        return ans


Comments

Submit
0 Comments
More Questions

580A- Kefa and First Steps
1472B- Fair Division
996A - Hit the Lottery
MSNSADM1 Football
MATCHES Playing with Matches
HRDSEQ Hard Sequence
DRCHEF Doctor Chef
559. Maximum Depth of N-ary Tree
821. Shortest Distance to a Character
1441. Build an Array With Stack Operations
1356. Sort Integers by The Number of 1 Bits
922. Sort Array By Parity II
344. Reverse String
1047. Remove All Adjacent Duplicates In String
977. Squares of a Sorted Array
852. Peak Index in a Mountain Array
461. Hamming Distance
1748. Sum of Unique Elements
897. Increasing Order Search Tree
905. Sort Array By Parity
1351. Count Negative Numbers in a Sorted Matrix
617. Merge Two Binary Trees
1450. Number of Students Doing Homework at a Given Time
700. Search in a Binary Search Tree
590. N-ary Tree Postorder Traversal
589. N-ary Tree Preorder Traversal
1299. Replace Elements with Greatest Element on Right Side
1768. Merge Strings Alternately
561. Array Partition I
1374. Generate a String With Characters That Have Odd Counts